package org.ragdollcat.first.util;

import java.net.MalformedURLException;
import java.net.URL;

public class StringHandler {

    private StringHandler(){}

    /**
     * 从URL中提取域名部分（协议+主机）之后的路径内容
     *
     * @param urlString 完整的URL字符串
     * @return 域名之后的路径内容，如果解析失败则返回空字符串
     */
    public static String extractPathAfterDomain(String urlString) {
        // 检查输入是否为null或空
        if (urlString == null || urlString.isEmpty()) {
            return "";
        }

        try {
            // 解析URL
            URL url = new URL(urlString);

            // 获取协议（如http、https）和主机部分
            String protocol = url.getProtocol();
            String host = url.getHost();
            int port = url.getPort();

            // 构建协议+主机的字符串（包含端口，如果不是默认端口）
            StringBuilder domainBuilder = new StringBuilder();
            domainBuilder.append(protocol).append("://").append(host);
            if (port != -1) { // 只有非默认端口才需要显式添加
                domainBuilder.append(":").append(port);
            }

            String domain = domainBuilder.toString();

            // 找到域名在原始URL中的结束位置
            int domainEndIndex = urlString.indexOf(domain) + domain.length();

            // 提取域名之后的内容（去掉可能的斜杠）
            String pathAfterDomain = urlString.substring(domainEndIndex);
            if (pathAfterDomain.startsWith("/")) {
                pathAfterDomain = pathAfterDomain.substring(1);
            }

            return pathAfterDomain;

        } catch (MalformedURLException e) {
            // 如果URL格式不正确，返回空字符串
            System.err.println("无效的URL格式: " + e.getMessage());
            return "";
        }
    }
}
